package com.anuo.app.study.studyjava;


import com.anuo.app.modules.study.entity.Product;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

/**
 * 研究状态: 常用的已研究
 * 作用: 流用来过滤数据
 * #用流过滤集合
 * #用流遍历
 * #进行SUM
 * 参考: https://www.javatpoint.com/java-8-stream
 */
public class StudyStream {
    private static List<Product> productList = new ArrayList<>();

    public static void main(String[] args) {
        initData();

    }

    //进行SUM
    public void sum() {
        //double的sum
//        double sumPrice = productList.stream()
//                .collect(Collectors.summingDouble(e -> e.getPrice()));

        //Bigdecimal 的sum (待研究)

    }



    //用流过滤集合
//    public void filterCollection() {
//
//        List<Double> priceList = productList.stream()
//                .filter(e -> e.getPrice() > 3000)
//                .map(e -> e.getPrice())
//                .collect(Collectors.toList());
//
//        //过滤后并打印出来
//        productList.stream()
//                .filter(product -> product.getPrice() == 30000)
//                .forEach(product -> System.out.println(product.getName()));
//    }

    //用流遍历
    public void iterateByStream() {
        Stream.iterate(1, e -> e + 1)
                .filter(e -> e % 5 == 0)
                .limit(5)
                .forEach(System.out::println);

    }


    public static void initData() {

    }

}
